﻿using com.kmer.interfaces;

namespace com.kmer.library.Factorys {
	/// <summary>
	/// 工厂管理，提供所有实现的工厂引用
	/// </summary>
	public static class FactoryManager {
		/// <summary>
		/// 配置信息存储
		/// </summary>
		public static IConfigurationFactory ConfigurationFactory 
			=> FactoryMaker.Get<IConfigurationFactory>("ding-ConfigurationFactory", "com.kmer.library.Factorys.RedisConfigurationFactory,com.kmer.library");
		/// <summary>
		/// 任务管理
		/// </summary>
		public static ITaskFactory TaskFactory 
			=> FactoryMaker.Get<ITaskFactory>("task-factory", "com.kmer.library.Factorys.TaskFactory,com.kmer.library");

		/// <summary>
		/// 用户操作（属性）
		/// </summary>
		public static IUserFactory UserFactory
			=> FactoryMaker.Get<IUserFactory>("user-facotry", "com.kmer.db.MemberShipFactory,com.kmer.db");

		/// <summary>
		/// 推送
		/// </summary>
		public static IPushFactory PushFactory 
			=> FactoryMaker.Get<IPushFactory>("PushFactory", "com.kmer.Getui.GetuiMessageCenterFactory,com.kmer.Getui");

		/// <summary>
		/// 财务
		/// </summary>
		public static IFinanceFactory FinanceFactory
			=> FactoryMaker.Get<IFinanceFactory>("FinanceFactory", "com.kmer.Finance.FinanceFactory,com.kmer.Finance");

		/// <summary>
		/// 聊天（小狐系统信息）
		/// </summary>
		public static IChatSysemFactory ChatFactory 
			=> FactoryMaker.Get<IChatSysemFactory>("ChatFactory", "www.kmer.ugc.Factory.ChatSysemFactory, www.kmer.ugc");


		/// <summary>
		/// OSS存储
		/// </summary>
		public static IOssClient OssFactory
			=> FactoryMaker.Get<IOssClient>("OSS-Factory", "AlOss.OssClientFactory,AlOss");
	}
}
